cmake_minimum_required (VERSION 2.8)

project (lista_compras)


# acesso aos modulos FindXXX.cmake incluidos nesse projeto
set (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/Modules")

# flags especiais para o GCC
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
	# habilita as extensoes do padrao C++11
	add_definitions ("-std=gnu++11")
endif ()

# flags especiais para o Visual C++
if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
	# desabilita o "warning" ao usar SCL/STL em uma classe exportada em DLL
	set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4251")
endif ()

# executaveis e dll's/so's serao gerados no mesmo diretorio
# para facilitar o "debug"
set (LIBRARY_OUTPUT_PATH "${PROJECT_BINARY_DIR}/bin")
set (EXECUTABLE_OUTPUT_PATH "${PROJECT_BINARY_DIR}/bin")


set (LIBS)


# adiciona a biblioteca construida no diretorio "ListaComprasLib"
add_subdirectory (ListaComprasLib)

include_directories ("${PROJECT_SOURCE_DIR}/ListaComprasLib")  

list (APPEND LIBS ListaCompras)

if (NOT BUILD_SHARED_LIBS)
	add_definitions ("-DLISTACOMPRAS_STATIC_LIB")
endif ()



# executavel principal

set (SOURCES main.cpp)
add_executable (lista_compras ${SOURCES})

target_link_libraries (lista_compras ${LIBS}) 




# instrucoes de instalacao (make install / INSTALL target no VS)
# Altere a variavel CMAKE_INSTALL_PREFIX, na invocacao do cmake para definir o diretorio de instalacao
# Windows: %ProgramFiles%\NomeProjeto
# Unix...: /usr/local [bin/lib]

# instalação do executável
install (TARGETS lista_compras RUNTIME DESTINATION bin)

	
# O CPack pode ler esses comandos e gerar um pacote de instalação 
# .deb, .rpm, .tgz (Unix)
# .pkg (Mac OS X)
# .msi (wix), .exe (NSIS) (Windows)
# Fica para outro treinamento...
